package com.example.leetcode.trainingcamp.week6.Sunday;


/**
 * 给你一个二叉树的根节点 root ，判断其是否是一个有效的二叉搜索树。
 *
 * 有效 二叉搜索树定义如下：
 *
 * 节点的左子树只包含 小于 当前节点的数。
 * 节点的右子树只包含 大于 当前节点的数。
 * 所有左子树和右子树自身必须也是二叉搜索树。
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/validate-binary-search-tree
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
public class Test98 {

    private long min = Long.MIN_VALUE;
    private boolean is = true;
    // 中序遍历即可，中序遍历是一个从小到大有序的
    public boolean isValidBST(TreeNode root) {
        add(root);
        return is;
    }

    public void add (TreeNode root){
        if (root == null) return;
        add(root.left);
        if (((long)root.val) <= min){
            is= false;
        }
        min = root.val;
        add(root.right);
    }
}
